package com.yeyks.commonReference.service.vip;

import com.yeyks.account.dal.domain.AccountInfo;
import com.yeyks.vip.dal.domain.AccountVipSalerRelation;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;


/**
 * <p>
 * 会员卡运营商服务商关系表 服务类
 * </p>
 *
 * @author yun
 * @since 2019-08-23
 */
public interface AccountVipSalerRelationService extends IService<AccountVipSalerRelation> {

    /**
     * 通过accountId查询会员卡运营商服务商关系对象
     *
     * @param accountId
     * @param vipType   vip类型，1大V，2小V
     * @return
     */
    AccountVipSalerRelation selectByAccountId(Integer accountId, Integer vipType);

    /**
     * 通过accountId和vipType和上级账户类型查询上级
     *
     * @param accountId
     * @param vipType    vip类型，1大V，2小V
     * @param parentType {@link com.yeyks.common.constants.AccountType}
     * @return
     */
    AccountVipSalerRelation selectByAccountId(Integer accountId, Integer vipType, Integer parentType);

    /**
     * 通过parentId查询子对象
     *
     * @param parentId
     * @param vipType  vip类型，1大V，2小V
     * @return
     */
    List<AccountVipSalerRelation> selectByParentId(Integer parentId, Integer vipType);

    /**
     * 通过parentId查询子对象
     *
     * @param parentId
     * @param vipType  vip类型，1大V，2小V
     * @return
     */
    List<Integer> selectAccountIdsByParentId(Integer parentId, Integer vipType);

    /**
     * 查询当前登录服务商下面的子集的accountId 包含自己
     *
     * @param loginUser 当前登录用户
     * @return 返回结果
     */
    List<Integer> listByChildrenAndMySelf(AccountInfo loginUser);

    /**
     * 查询当前登录服务商下面的子集的accountId
     *
     * @param loginUser 当前登录用户
     * @return 返回结果
     */
    List<Integer> listByChildren(AccountInfo loginUser);
}
